Conventional two-factor authentication relies on BLUETOOTH, WIFI, cellular networks (e.g., short message service, or SMS) or additional hardware to transmit authentication data. In most cases, these methods use a numeric or alphanumeric code that is input by the user or transmitted over 3G/wireless/BLUETOOTH technology, and the user is required to manually enter the code (e.g., a user-specified password) that is generated by these methods to complete the authentication process. This makes these methods vulnerable, unreliable, and cumbersome to use.